package com.ht.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ht.shortlink.admin.dao.entity.GroupDO;
import com.ht.shortlink.admin.dto.req.ShortLinkGroupAddReqDTO;
import com.ht.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import com.ht.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import com.ht.shortlink.admin.dto.resp.ShortLinkGroupRespDTO;

import java.util.List;

/**
 *  短链接分组接口层
 */
public interface IGroupService extends IService<GroupDO> {

    /**
     *  新增分组
     * @param requestParam 分组名
     */
    void add(ShortLinkGroupAddReqDTO requestParam);

    /**
     *  新增分组
     * @param username 用户名
     * @param groupName 分组名
     */
    void add(String username,  String groupName);


    /**
     *  更新分组
     * @param requestParam 分组更新参数
     */
    void update(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     *  查询当前用户的短链接分组集合
     * @return 短链接分组集合
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     *  删除分组
     * @param gid 分组标识
     */
    void delete(String gid);

    /**
     *  分组排序
     * @param requestParams 分组排序请求参数
     */
    void sort(List<ShortLinkGroupSortReqDTO> requestParams);
}
